export default function(cls) {

  cls.defaultOptions = {
    positions: [],
    rotations: [],
    show: true,
    showHelper: false,
    showDirection: false,
    loop: false,
    slices: 100,
    alwaysAlongThePath: false,
    cameraAttachedOffsetPosition: [0, 0, 0],
    cameraAttachedOffsetRotation: [0, 0, 0],
    viewDistance: 0,
    currentSpeed: 50.0,
    loopPlay: false
  };

  cls.schema = {
    title: "Path Property",
    type: "object",
    properties: {
      /**
       * 显示路径
       * @type {boolean}
       * @instance
       * @default true
       * @memberof Obj.Path
       */
      show: {
        type: "boolean",
        title: "显示路径",
        default: "true",
        description: '显示路径'
      },
      /**
       * 是否显示辅助线框
       * @type {boolean}
       * @instance
       * @default false
       * @memberof Obj.Path
       */
      showHelper: {
        type: "boolean",
        title: "辅助线框",
        default: "false",
        description: '辅助线框'
      },
      /**
       * 显示方向
       * @type {boolean}
       * @instance
       * @default true
       * @memberof Obj.Path
       */
      showDirection: {
        type: "boolean",
        title: "显示方向",
        default: "true",
        description: '显示方向'
      },
      /**
       * 是否为环线
       * @type {boolean}
       * @instance
       * @default false
       * @memberof Obj.Path
       */
      loop: {
        type: "boolean",
        title: "是否为环线",
        default: "false",
        description: '是否为环线'
      },
      /**
       * 曲线分段数
       * @type {number}
       * @instance
       * @default 100
       * @memberof Obj.Path
       */
      slices: {
        type: "number",
        title: "曲线分段数",
        default: "100",
        description: '曲线分段数'
      },
      /**
       * 始终沿着路径方向运动
       * @type {boolean}
       * @instance
       * @default false
       * @memberof Obj.Path
       */
      alwaysAlongThePath: {
        type: "boolean",
        title: "始终沿着路径方向运动",
        default: "false",
        description: '始终沿着路径方向运动'
      },
      /**
       * 当前播放速度，单位为米/秒。<br/>
       * 注意，此属性可以实时修改，修改后的速度立即生效，所以可以动态修改路径上物体的前进速度！
       * @type {number}
       * @instance
       * @default 50.0,
       * @memberof Obj.Path
       */
      currentSpeed: {
        type: "number",
        title: "当前播放速度，单位为米",
        default: 50.0,
        description: '当前播放速度，单位为米'
      },
      /**
       * 是否循环播放<br/>
       * 如果为false，则playing设置为true时，会从当前位置播放到最后一个关键点，并停止播放，此时playing属性会自动变成false。
       * 若此属性为true时，播放到最后一个关键点以后，将自动重第一个关键点继续播放。
       * @type {boolean}
       * @instance
       * @default false,
       * @memberof Obj.Path
       */
      loopPlay: {
        type: "boolean",
        title: "是否循环播放",
        default: "false",
        description: '是否循环播放'
      }
    }
  };

  cls.classification = [{
    name: {
      chinese: '通用',
      english: 'General'
    },
    properties: ['show', 'showHelper', 'showDirection', 'loop', 'slices', 'alwaysAlongThePath']
  }];
}
